iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0

Wasm+Hello World

為了能夠讓後面的各個實際案例能順利講解,本章節會幫大家上點簡單的 Rust 的基礎專案結構,當然 Wasm 不只有 Rust 這個程式語言支援喔!

Hello World

沒錯,還是那個最熟悉的陌生人,Hello World

Rust 的專案結構

Hello (專案資料夾)
|-- Cargo.toml (專案設定檔案)
|-- src (放程式碼的地方)
    |-- *.rs (程式碼)

Cargo.toml 的內容

完整資訊請參考文件

我們只需要用到以下幾個常見的欄位就夠了

[package] # 套件的資訊
name = "hello" # 套件名稱
version = "0.1.0" # 套件版本
authors = ["hydai"] # 套件作者
edition = "2021" # Rust 語言標準

[[bin]] # 代表這個 Rust 程式最後會產生可執行檔案
name = "hello" # 可執行檔案的名稱
path = "src/main.rs" # 對應的程式碼路徑

關於 Rust 程式碼

# 宣告進入點
fn main() {
  # println 列印並換行
  println!("Hello WasmEdge from the container");
}

開發 Rust 的工作環境

為了能夠編譯上面的程式碼,讀者可以選擇:

  1. 參考 Rust 官網,將 Rust 工具安裝在環境裡。
  2. 直接使用 Rust 在 Docker Hub 上面的官方 Image

編譯

在有 Cargo.toml 的資料夾中,執行以下指令:

# 第一次執行之前,需要先啟用 wasm32-wasi 的目標平台
rustup target add wasm32-wasi
# 使用 release 模式來編譯
cargo build --release --target wasm32-wasi
# 若你需要使用 debug 模式,直接移除 `--release` 即可,如下面註解的這行
# cargo build --target wasm32-wasi

編譯好的 Wasm 檔案會位於 target/wasm32-wasi/release/hello.wasm,若是使用 debug 模式,則會位於 target/wasm32-wasi/debug/hello.wasm
請注意,此處的 hello.wasmhello 就是在 Cargo.toml 裡面的 [[bin]].name

之後每次修改完程式碼都要記得重新編譯,才能取得最新的 Wasm 檔案喔!

章節習題

請將上面的範例程式碼修改成鐵人賽的三十天挑戰,預期的輸出為:

2023ironman Day 1
2023ironman Day 2
2023ironman Day 3
...
2023ironman Day 30

上一篇
Wasm Dockerfile 該怎麼撰寫
下一篇
Wasm+Docker Run
系列文
關於 WebAssembly 也能變成 Container 的這檔事15
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言